home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60src.lha / Vim / vim60 / src / farsi.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-04-15  |  6.2 KB  |  252 lines

  1. /* vi:set ts=8 sts=4 sw=4:
  2.  *
  3.  * VIM - Vi IMproved    by Bram Moolenaar
  4.  *
  5.  * Do ":help uganda"  in Vim to read copying and usage conditions.
  6.  * Do ":help credits" in Vim to see a list of people who contributed.
  7.  */
  8.  
  9. /*
  10.  * Farsi characters are catagorized into following types:
  11.  *
  12.  * TyA    (for capital letter representation)
  13.  * TyB    (for types that look like _X  e.g. AYN)
  14.  * TyC    (for types that look like X_  e.g. YE_)
  15.  * TyD    (for types that look like _X_  e.g. _AYN_)
  16.  * TyE    (for types that look like X  e.g. RE)
  17.  */
  18.  
  19. /*
  20.  * Farsi character set definition
  21.  */
  22.  
  23. /*
  24.  * Begin of the non-standard part
  25.  */
  26.  
  27. #define TEE_        0x80
  28. #define ALEF_U_H_    0x81
  29. #define ALEF_        0x82
  30. #define _BE        0x83
  31. #define _PE        0x84
  32. #define _TE        0x85
  33. #define _SE        0x86
  34. #define _JIM        0x87
  35. #define _CHE        0x88
  36. #define _HE_J        0x89
  37. #define _XE        0x8a
  38. #define _SIN        0x8b
  39. #define _SHIN        0x8c
  40. #define _SAD        0x8d
  41. #define _ZAD        0x8e
  42. #define _AYN        0x8f
  43. #define _AYN_        0x90
  44. #define AYN_        0x91
  45. #define _GHAYN        0x92
  46. #define _GHAYN_        0x93
  47. #define GHAYN_        0x94
  48. #define _FE        0x95
  49. #define _GHAF        0x96
  50. #define _KAF        0x97
  51. #define _GAF        0x98
  52. #define _LAM        0x99
  53. #define LA        0x9a
  54. #define _MIM        0x9b
  55. #define _NOON        0x9c
  56. #define _HE        0x9d
  57. #define _HE_        0x9e
  58. #define _YE        0x9f
  59. #define _IE        0xec
  60. #define IE_        0xed
  61. #define IE        0xfb
  62. #define _YEE        0xee
  63. #define YEE_        0xef
  64. #define YE_        0xff
  65.  
  66. /*
  67.  * End of the non-standard part
  68.  */
  69.  
  70. /*
  71.  * Standard part
  72.  */
  73.  
  74. #define F_BLANK        0xa0    /* Farsi ' ' (SP) character */
  75. #define F_PSP        0xa1    /* PSP for capitalizing of a character */
  76. #define F_PCN        0xa2    /* PCN for redefining of the hamye meaning */
  77. #define F_EXCL        0xa3    /* Farsi ! character */
  78. #define F_CURRENCY    0xa4    /* Farsi Rial character */
  79. #define F_PERCENT    0xa5    /* Farsi % character */
  80. #define F_PERIOD    0xa6    /* Farsi '.' character */
  81. #define F_COMMA        0xa7    /* Farsi ',' character */
  82. #define F_LPARENT    0xa8    /* Farsi '(' character */
  83. #define F_RPARENT    0xa9    /* Farsi ')' character */
  84. #define F_MUL        0xaa    /* Farsi 'x' character */
  85. #define F_PLUS        0xab    /* Farsi '+' character */
  86. #define F_BCOMMA    0xac    /* Farsi comma character */
  87. #define F_MINUS        0xad    /* Farsi '-' character */
  88. #define F_DIVIDE    0xae    /* Farsi divide (/) character */
  89. #define F_SLASH        0xaf    /* Farsi '/' character */
  90.  
  91. #define FARSI_0        0xb0
  92. #define FARSI_1        0xb1
  93. #define FARSI_2        0xb2
  94. #define FARSI_3        0xb3
  95. #define FARSI_4        0xb4
  96. #define FARSI_5        0xb5
  97. #define FARSI_6        0xb6
  98. #define FARSI_7        0xb7
  99. #define FARSI_8        0xb8
  100. #define FARSI_9        0xb9
  101.  
  102. #define F_DCOLON    0xba    /* Farsi ':' character */
  103. #define F_SEMICOLON    0xbb    /* Farsi ';' character */
  104. #define F_GREATER    0xbc    /* Farsi '>' character */
  105. #define F_EQUALS    0xbd    /* Farsi '=' character */
  106. #define F_LESS        0xbe    /* Farsi '<' character */
  107. #define F_QUESTION    0xbf    /* Farsi ? character */
  108.  
  109. #define ALEF_A    0xc0
  110. #define ALEF    0xc1
  111. #define HAMZE    0xc2
  112. #define BE    0xc3
  113. #define PE    0xc4
  114. #define TE    0xc5
  115. #define SE    0xc6
  116. #define JIM    0xc7
  117. #define CHE    0xc8
  118. #define HE_J    0xc9
  119. #define XE    0xca
  120. #define DAL    0xcb
  121. #define ZAL    0xcc
  122. #define RE    0xcd
  123. #define ZE    0xce
  124. #define JE    0xcf
  125. #define SIN    0xd0
  126. #define SHIN    0xd1
  127. #define SAD    0xd2
  128. #define ZAD    0xd3
  129. #define _TA    0xd4
  130. #define _ZA    0xd5
  131. #define AYN    0xd6
  132. #define GHAYN    0xd7
  133. #define FE    0xd8
  134. #define GHAF    0xd9
  135. #define KAF    0xda
  136. #define GAF    0xdb
  137. #define LAM    0xdc
  138. #define MIM    0xdd
  139. #define NOON    0xde
  140. #define WAW    0xdf
  141. #define F_HE    0xe0        /* F_ added for name clash with Perl */
  142. #define YE    0xe1
  143. #define TEE    0xfc
  144. #define _KAF_H    0xfd
  145. #define YEE    0xfe
  146.  
  147. #define F_LBRACK    0xe2    /* Farsi '[' character */
  148. #define F_RBRACK    0xe3    /* Farsi ']' character */
  149. #define F_LBRACE    0xe4    /* Farsi '{' character */
  150. #define F_RBRACE    0xe5    /* Farsi '}' character */
  151. #define F_LQUOT        0xe6    /* Farsi left quotation character */
  152. #define F_RQUOT        0xe7    /* Farsi right quotation character */
  153. #define F_STAR        0xe8    /* Farsi '*' character */
  154. #define F_UNDERLINE    0xe9    /* Farsi '_' character */
  155. #define F_PIPE        0xea    /* Farsi '|' character */
  156. #define F_BSLASH    0xeb    /* Farsi '\' character */
  157.  
  158. #define MAD        0xf0
  159. #define JAZR        0xf1
  160. #define OW        0xf2
  161. #define MAD_N        0xf3
  162. #define JAZR_N        0xf4
  163. #define OW_OW        0xf5
  164. #define TASH        0xf6
  165. #define OO        0xf7
  166. #define ALEF_U_H    0xf8
  167. #define WAW_H        0xf9
  168. #define ALEF_D_H    0xfa
  169.  
  170. /*
  171.  * global definitions
  172.  * ==================
  173.  */
  174.  
  175. #define SRC_EDT    0
  176. #define SRC_CMD 1
  177.  
  178. #define AT_CURSOR 0
  179.  
  180. /*
  181.  * definitions for the window dependent functions (w_farsi).
  182.  */
  183. #define W_CONV 0x1
  184. #define W_R_L  0x2
  185.  
  186.  
  187. /* prototypes */
  188.  
  189. int fkmap __ARGS((int c));
  190. int toF_TyA __ARGS((int c));
  191. int F_isalpha __ARGS((int c));
  192. int F_isdigit __ARGS((int c));
  193. int F_ischar __ARGS((int c));
  194. int cmdl_fkmap __ARGS((int c));
  195. void cmd_pchar    __ARGS((int c, int offset));
  196. int cmd_gchar    __ARGS((int offset));
  197. void conv_to_pvim __ARGS((void));
  198. void conv_to_pstd __ARGS((void));
  199. char_u *lrswap __ARGS((char_u *ibuf));
  200. char_u *lrFswap __ARGS((char_u *cmdbuf, int len));
  201. char_u *lrF_sub __ARGS((char_u *ibuf));
  202. void farsi_fkey __ARGS((cmdarg_T *cap));
  203.  
  204. /* special Farsi text messages */
  205.  
  206. EXTERN char_u farsi_text_1[]
  207. #ifdef DO_INIT
  208.         = { YE_, _SIN, RE, ALEF_, _FE, ' ', 'V', 'I', 'M',
  209.             ' ', F_HE, _BE, ' ', SHIN, RE, _GAF, DAL,' ', NOON,
  210.             ALEF_, _YE, ALEF_, _PE, '\0'}
  211. #endif
  212.              ;
  213.  
  214. EXTERN char_u farsi_text_2[]
  215. #ifdef DO_INIT
  216.         = { YE_, _SIN, RE, ALEF_, _FE, ' ', FARSI_3, FARSI_3,
  217.             FARSI_4, FARSI_2, ' ', DAL, RE, ALEF, DAL, _NOON,
  218.             ALEF_, _TE, _SIN, ALEF, ' ', F_HE, _BE, ' ', SHIN,
  219.             RE,  _GAF, DAL, ' ', NOON, ALEF_, _YE, ALEF_, _PE, '\0'}
  220. #endif
  221.              ;
  222.  
  223. EXTERN char_u farsi_text_3[]
  224. #ifdef DO_INIT
  225.         = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
  226.             ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L',
  227.             'A','C','E', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, ALEF,
  228.             ' ', 'R', 'E', 'V', 'E', 'R', 'S', 'E', ' ', 'I', 'N',
  229.             'S', 'E', 'R', 'T', ' ', SHIN, WAW, RE, ' ', ALEF_, _BE,
  230.             ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', RE,
  231.             ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
  232. #endif
  233.             ;
  234.  
  235. #if 0 /* not used */
  236. EXTERN char_u farsi_text_4[]
  237. #ifdef DO_INIT
  238.         = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
  239.             ALEF_, _BE, _YE, _TE, _SHIN, _PE, ' ', '<', 'C','T','R',
  240.             'L','-','B','>', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE,
  241.             ALEF, ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ',
  242.             RE, ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
  243. #endif
  244.             ;
  245. #endif
  246.  
  247. EXTERN char_u farsi_text_5[]
  248. #ifdef DO_INIT
  249.         = { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'}
  250. #endif
  251.             ;
  252.